package com.yuandian.management.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuandian.api.management.entity.ConfExclusiveIndicator;
import com.yuandian.bpm.common.core.util.R;
import com.yuandian.management.vo.IndicatorsSyncParams;
import com.yuandian.utils.PageDataInfo;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 专属指标表-Service接口
 * @author zfsn
 * @date 2023-3-22
 */
public interface ExclusiveIndicatorService extends IService<ConfExclusiveIndicator> {


	/**
	 * 获取服务资源和专属指标map 服务资源对应的专属指标，list为要显示的指标
	 * @return Map<resourceCode, Lis<专属指标>>
	 */
	Map<String, List<String>> getResourcesIndicatorsShowMap(boolean needRefresh);


	/**
	 * 获取业务和专属指标map 业务对应的专属指标，list为要显示的指标
	 * @return Map<businessCode, Lis<专属指标>>
	 */
	Map<String, List<String>> getBusinessIndicatorsShowMap(boolean needRefresh);

	/**
     *
	 * 获取端到端关联专属指标 业务对应的专属指标，list为要显示的指标
	 * @param needRefresh 是否需要刷新
	 * @return Map<resourceCode, map<name,关联类型>>
	 */
	Map<String, HashMap<String, Integer>> querySegmentConnectList(boolean needRefresh);

	/**
	 * 批量修改
	 * @param confExclusiveIndicator
	 * @return
	 */
    R<String> batchEdit(ConfExclusiveIndicator confExclusiveIndicator);

	R<PageDataInfo> querySureOrAlreadySyncResource(IndicatorsSyncParams params);


	/**
	 * 专属指标同步
	 * @param params 专属指标同步请求参数
	 * @return 通用返回对象
	 */
	R sync(IndicatorsSyncParams params);

	/**
	 * 专属指标同步移除
	 * @param params 专属指标同步请求参数
	 * @return 通用返回对象
	 */
	R unSync(IndicatorsSyncParams params);


	/**
	 * 专属指标同步所有
	 * @param params 专属指标同步请求参数
	 * @return 通用返回对象
	 */
	R syncAll(IndicatorsSyncParams params);

	/**
	 * 专属指标同步移除所有
	 * @param params 专属指标同步请求参数
	 * @return 通用返回对象
	 */
	R unSyncAll(IndicatorsSyncParams params);


}
